Ext.ns('cn.hls.web.action.biz.car');
Array.prototype.remove = function(val) {
	var index = this.indexOf(val);
	if (index > -1) {
	this.splice(index, 1);
	}
	};
var carForm = cn.hls.web.action.biz.car.carForm;
 carForm = function() {
	var uploadPanel,uploadWin,handCarWin,carWin,handCarGrid,carGrid,carStore,handCarStore,tbarOpr=[];
	var sm = new Ext.grid.CheckboxSelectionModel({
		singleSelect : false  //单选设置为false　表示允许多选
	});
   return { 
      init : function() {
    	this.initRender();
      },
      /**附件上传**/
      ajaxFileUpload:function(){
    	  var filepath =$("#attachFile").val();
    		 var extStart = filepath.lastIndexOf(".");
    	     var ext = filepath.substring(extStart, filepath.length).toUpperCase();
    	     if (ext != ".BMP" && ext != ".PNG" && ext != ".GIF" && ext != ".JPG" && ext != ".JPEG"){
    	    	 Ext.Mytip.msg('提示','文件格式不正确,请允许上传后辍名为bmp、gif、png、jpg、jpeg的文件!');
    	    	 return;
    	     }else{
    	    	 var size=document.getElementById("attachFile").files[0].size;
    	    	 if(size>10*1024*1024){//最大不能超过10M
    	    		 Ext.Mytip.msg('提示','上传文件超过规定10M大小!');
    	    		 return;
    	    	 }
    	     }
    	     $.ajaxFileUpload({  
    	         url: cfg.cxt+'/upload/uploadFile.action', 
    	         secureuri: false,
    	         fileElementId: 'attachFile',  
    	         dataType: 'json', //这里修改为content  
    	         success: function (data) {
    	        	 if(data.status==200){
    	        	   Ext.Mytip.msg('提示','文件传成功!');
    	        	   var files=$("#hid_filePath").val();
    	        	   if(files==''){
    	        		   $("#hid_filePath").val(data.info);
    	        	   }else{
    	        		   files+=','+data.info;
    	        		   $("#hid_filePath").val(files);//重新设置值
    	        	   }
    	        	   var attachDiv=$("#attach_div");
    	        	   var fileName=data.info.substring(data.info.indexOf("/")+1);
    	        	   var pre_fileName=fileName.substring(0,fileName.indexOf("."));
    	        	   attachDiv.append('<span id="sp_'+pre_fileName+'" style="padding-left:8px;padding-right:5px;">'+fileName+'</span><a id="a_'+pre_fileName+'" href="javascript:void(0);" onclick=carForm.delFile("'+fileName+'");>删除</a>'
    	        			   			+'<input type="hidden" id="hid_'+pre_fileName+'" value="'+data.info+'"/>');
    	        	   $("#attachFile").hide();
    	        	   $("#attachFile").val('');//清空上传中的文件
						uploadWin.hide();
    	        	   
    	           }else{
    	        	   Ext.Mytip.msg('提示','文件上传失败!');
    	           }
    	         },  
    	         error: function (data, status, e) {  
    	        	resultFlag=false;
    	        	console.log(e);
    	        	console.log("status:"+status);
    	        	console.log(data);
    	        	Ext.Mytip.msg('提示','文件上传失败，原因:'+e);
    	         }  
    	       }  
    	     )
      },
      /**
       * 删除文件
       */
      delFile:function(fileName){
    	  var element=fileName.substring(0,fileName.indexOf("."));
    	  Ext.Msg.confirm('请确认',
					'<span style="color:red"><b>提示：</b>确定删除吗？</span>',
					function(btn, text) {
						if (btn == 'yes') {
							var fileName=$("#hid_"+element).val();
							Ext.Ajax.request({
								url : cfg.cxt + '/upload/delFile.action',
								success : function(response) {
									var rt = Ext.decode(response.responseText);
									if (rt.status==200) {
										Ext.Mytip.msg('提示', '删除成功！');
										$("#sp_"+element).remove();
										$("#hid_"+element).remove();
										$("#a_"+element).remove();
										//更新hid_filePath的内容
										var files=$("#hid_filePath").val();
										if($.trim(files)!=''){
											var a=files.split(',');
											if(a.length>1){
												a.remove(fileName);
												$("#hid_filePath").val(a.join(','));
											}
										}
									} else {
										bangni.ajaxError(response);
									}
								},
								failure : bangni.ajaxError,
								params : {
									"fileName":fileName
								}
							});
						}
					});
      },
  
      /**打开附件上传窗口**/
      openAttachWin:function(){
    	if(!uploadWin){
    		uploadWin=carForm.createUploadWin();
    	}
    	$("#attachFile").show();
    	uploadWin.show();//打开窗口
      },
      //创建上传窗口
      createUploadWin:function(){
    	  if(!uploadPanel){
    		  uploadPanel=carForm.createUploadPanel();
    	  }
    	  return new ExtWin({
  			width : 300,
				height : 150,
				title : '<div class="panelTitleCss">附件上传</div>',
  		  	items:[uploadPanel],
  		  	buttons : [{
					text : '上传',
					id:"btn_Save",
					iconCls : 'acceptIcon',
					handler : function() {
						carForm.ajaxFileUpload();
					}
  		  	},{
					text : '取消',
					iconCls : 'deleteIcon',
					handler : function() {
						$("#attachFile").hide();
						uploadWin.hide();
					}
				}]
  		  });
      },
      createUploadPanel:function(){
    	  uploadPanel=new Ext.Panel({
    		  layout : 'fit',
    		  items: [{
		        	padding : 5,
					bodyStyle:'overflow-y:auto;overflow-x:hidden;',
					contentEl : 'attachFile'
		        }]
    	  });
    	  return uploadPanel;  
      },
      /**打开列表窗口**/
      openGridView:function(){
    	  var type=$("#cmb_type").val();
    	  if(type==1){//主车
    		  carForm.openCarView();
    	  }else if(type==2){//挂车
    		  carForm.openHandCarView();
    	  }
      },
      /**打开车辆视图窗口**/
      openCarView:function(){
    	  if(!carGrid){
    		  carStore=carForm.createCarStore();
    		  carGrid=carForm.createCarGrid();//创建车辆列表
    		  carStore.on('beforeload',function(){
    			  this.baseParams = {
    						"licenseNum" : Ext.getCmp('txt_licenseNum').getValue()
    					}; 
    		  });
    	  }
    	  //列表绑定双击事件
    	  carGrid.on('rowdblclick', function(g, r, e) {
			  carForm.confirmChoose(g.getSelectionModel().getSelected());  
		  });
		  if(!carWin){
			  carWin=carForm.createCarWindow();//创建挂车窗口
		  }
		  carForm.queryResItem();
		  carWin.show();
      },
      /**打开挂车视图窗口**/
      openHandCarView:function(){
    	  if(!handCarGrid){
    		  handCarStore=carForm.createHandCarStore();
    		  handCarGrid=carForm.createHandCarGrid();//创建挂车列表
    		  handCarStore.on('beforeload', function() {
    			  this.baseParams = {
  						"licenseNum" : Ext.getCmp('txt_licenseNum').getValue()
  					};  
    		  });
    		  //列表绑定双击事件
    		  handCarGrid.on('rowdblclick', function(g, r, e) {
    			  carForm.confirmChoose(g.getSelectionModel().getSelected());  
    		  });
    	  }
    	  if(!handCarWin){
    		  handCarWin=carForm.createHandCarWindow();//创建挂车窗口
    	  }
    	  carForm.queryResItem();
    	  handCarWin.show();
      },
      /**选中行的判断**/
      confirmChoose:function(row){
    	  Ext.Msg.confirm('请确认',
					'<span style="color:red"><b>提示：</b>确定选择车牌为['+row.data.licenseNum+']?</span>',
					function(btn, text) {
						if (btn == 'yes') {
							$("#txt_licenseNum").val(row.data.licenseNum);
							var type=$("#cmb_type").val();
							if(type==1){//主车信息
								carWin.hide();
							}else if(type==2){//挂车信息
								handCarWin.hide();
							}
						}
					});
      },
      /**创建挂车列表store**/
      createHandCarStore: function() {
			return new ExtStore({
				url : '/handCar/list.action',
				fields : [ "id",// 编号
				       	"licenseNum",//车牌号
				    	"color",//车牌颜色
				    	"carryCapacity",//载重量
				    	"totalMass",//车辆类型
				    	"wheelNum",//道路运输许可证
				    	"productTime",//出厂日期
				    	"car"//主车信息
				    	]
			});
      },
      /**创建主车列表store**/
      createCarStore:function(){
    	  return new ExtStore({
				url : '/car/list.action',
				fields : [ "id",// 编号
				       	"licenseNum",//车牌号
				       	"licenseColor",//车牌颜色
				    	"licenseNum2",//挂车车牌
				    	"carryCapacity",//载重量
				    	"carCategory",//车辆类型
				    	]
			});
      },
      /**创建挂车列表**/
  	createCarGrid:function(){
      	  return new ExtGrid({
      		  	store :carStore,
  				title : '<div class="panelTitleCss">车辆基本信息列表</div>',
  				sm : sm,
  				columnLines : true,
  				columns :carForm.createCarColumns(),
  				tbar : carForm.createQueryTbar(),
  				bbar : {
  					id : 'car_page',
  					xtype : 'pageinfobar',
  					pageSize : 5,
  					store : carStore,
  					pageMethod : carForm.queryResItem
  				}
  			});
        },
      /**创建挂车列表**/
	createHandCarGrid:function(){
    	  return new ExtGrid({
				store :handCarStore,
				title : '<div class="panelTitleCss">挂车基本信息列表</div>',
				sm : sm,
				columnLines : true,
				columns :carForm.createHandCarColumns(),
				tbar : carForm.createQueryTbar(),
				bbar : {
					id : 'page',
					xtype : 'pageinfobar',
					pageSize : 20,
					store : handCarStore,
					pageMethod : carForm.queryResItem
				}
			});
      },
      
      /**创建主车列表中的表信息**/
      createCarColumns:function(){
    	  var cols = [
  					new Ext.grid.RowNumberer(),
  					sm,
  					{
  						sortable : true,dataIndex : 'licenseNum',width : 60,autoWidth :true,header : '车牌号',align : 'center'
  					},{
  						sortable : true,dataIndex : 'licenseColor',width : 60,autoWidth :true,header : '车牌颜色',align : 'center',
  						renderer : function(value) {
  							if(value!=null){
  								if(value==1){
  									return '黄色';
  								}else if(value==2) {
  									return '蓝色';
  								}
  							}else{
  								return '';
  							}
  						}
  					},{
						sortable : true,dataIndex : 'licenseNum2',width : 60,autoWidth :true,header : '挂车牌号',align : 'center'
					},{
  						sortable : true,dataIndex : 'carCategory',width : 75,autoWidth :true,header : '车辆类型',align : 'center',
  						renderer : function(value) {
  							if(value!=null){
  								return value.name;
  							}else{
  								return '';
  							}
  						}
  					},{
  						sortable : true,dataIndex : 'carryCapacity',width : 50,autoWidth :true,header : '载重(Kg)',align : 'center'
  					}
  			];
  			return cols;
      },
      /**创建挂车列表中的列信息**/
      createHandCarColumns : function() {
			var cols = [
						new Ext.grid.RowNumberer(),
						sm,
						{
							sortable : true,dataIndex : 'licenseNum',width : 60,autoWidth :true,header : '车牌号',align : 'center'
						},{
							sortable : true,dataIndex : 'car',width : 60,autoWidth :true,header : '主车车牌',align : 'center',
							renderer : function(val) {
								if(val==null){
									return '';
								}else{
									return val.licenseNum;
								}
							}
						},{
							sortable : true,dataIndex : 'color',width : 60,autoWidth :true,header : '车身颜色',align : 'center'
						},{
							sortable : true,dataIndex : 'wheelNum',width : 60,autoWidth :true,header : '车轮数',align : 'center'
						},{
							sortable : true,dataIndex : "totalMass",header : '总质量',autoWidth : true,align : 'center',width : 75
							
						},{
							sortable : true,dataIndex : 'carryCapacity',width : 50,autoWidth :true,header : '载重(Kg)',align : 'center'
						},{
							sortable : true,dataIndex : 'productTime',width : 50,autoWidth :true,header : '出厂日期',align : 'center',
							renderer:function(val){
								if(val==null){
									return ''
								}else{
									return new Date(val).dateFormat('Y-m-d');
								}
							}
						}
					];
			return cols;
		},
		createQueryTbar : function() {
			tbarOpr.push('->');
			tbarOpr.push({
				xtype : "textfield",
				width : 90,
				id : 'txt_licenseNum',
				emptyText : '请输入车牌号',
				style : 'margin-left:10px;',
				enableKeyEvents : true,
				listeners : {
					specialkey : function(field, e) {
						if (e.getKey() == Ext.EventObject.ENTER) {
							carForm.queryResItem();
						}
					}
				}
			});
			tbarOpr.push('-'); 
			tbarOpr.push({
				text : '查询',
				iconCls : 'mainContent',
				handler : function() {
					carForm.queryResItem();
				}
			});

			tbarOpr.push({
				text : '刷新',
				iconCls : 'arrow_refreshIcon',
				handler : function() {
					handCarStore.reload();
				}
			});
		return tbarOpr;
		},
		queryResItem : function(v) {
			var type=$("#cmb_type").val();
			var ptool;
			if(type==1){
				ptool=Ext.getCmp('car_page');
			}else{
				ptool=Ext.getCmp('page');
			}
			if (!v) {
				v = ptool.pageSize;
			}
			if(type==1){//主车查询
				carStore.load({
					params : {
						"start" : 0,
						"limit" : v
					}
				});
			}else{//挂车查询
				handCarStore.load({
					params : {
						"start" : 0,
						"limit" : v
					}
				});
			}
		},

      /**创建挂车窗口**/
      createHandCarWindow:function(){
    	  return new ExtWin({
			    width : 800,
				height : 280,
				maximizable : false,
				layout:'fit',
				items:handCarGrid,
				buttons : [{
					text : '确定',
					id:"btnSave",
					iconCls : 'acceptIcon',
					handler : function() {
						var selectModel = handCarGrid.getSelectionModel();
						if(selectModel.getCount() == 0){
							Ext.Mytip.msg('提示', '请先选择挂车信息!');
							return;
						}
						
						if(selectModel.getCount() > 1){
							Ext.Mytip.msg('提示', '请选择一条挂车信息!');
							return;
						}
						carForm.confirmChoose(selectModel.getSelected());
					}
				},{
					text : '关闭',
					iconCls : 'deleteIcon',
					handler : function() {
						handCarWin.hide();
					}
				}]
			});
      },
      /**创建主车窗口**/
      createCarWindow:function(){
    	  return new ExtWin({
			    width : 800,
				height : 280,
				maximizable : false,
				layout:'fit',
				items:carGrid,
				buttons : [{
					text : '确定',
					id:"btn_carSave",
					iconCls : 'acceptIcon',
					handler : function() {
						var selectModel = carGrid.getSelectionModel();
						if(selectModel.getCount() == 0){
							Ext.Mytip.msg('提示', '请先选择车辆信息!');
							return;
						}
						
						if(selectModel.getCount() > 1){
							Ext.Mytip.msg('提示', '请选择一条车辆信息!');
							return;
						}
						carForm.confirmChoose(selectModel.getSelected());
					}
				},{
					text : '关闭',
					iconCls : 'deleteIcon',
					handler : function() {
						carWin.hide();
					}
				}]
			});
      },
      /**加载车辆信息**/
      loadCarInfo:function(){
    	if($("#cmb_type").val()==1){
    		$("#txt_licenseNum").val($("#hid_licenseNum").val());
    	}else{
    		$("#txt_licenseNum").val($.trim($("#hid_licenseNum2").val()));
    		if($.trim($("#txt_licenseNum").val())==''){
    			Ext.Mytip.msg('提示', '挂车车牌不存在');
				return;
    		}
    	}
      },
      initRender: function(){
      }
   }
}();
Ext.onReady(carForm.init, carForm);


 